// 【字体格式】：{文字-fontWeight-color}
import { parseStyledString } from '../utils/text';
import Photo from '../assets/photo.jpg';
import TX from '../assets/tx.png';
import MT from '../assets/mt.png';

interface TextInfo {
  text: string;
  fontWeight: number;
  color: string;
}

interface EducationInfo {
  school: string;
  major: string;
  type: string;
  sTime: string;
  eTime: string;
}

interface PersonalInfo {
  name: string;
  photo: string;
  email: string;
  phone: string;
  educationInfos: EducationInfo[];
}

export interface WorkInfoI {
  company: string;
  logo: string;
  logoHeight: number;
  role: string;
  sTime: string;
  eTime: string;
  intro: string;
  descs: string[];
  formatDescs?: TextInfo[][];
  techStach: string[];
}

// 【个人信息】
const personalInfo: PersonalInfo = {
  name: '李阳',
  photo: Photo,
  email: '1392886821@qq.com ',
  phone: '18092949038',
  educationInfos: [
    {
      school: '长安大学(211)',
      major: '计算机科学与技术',
      type: '硕士',
      sTime: '2023.09',
      eTime: '2026.06',
    },
    {
      school: '长安大学(211)',
      major: '计算机科学与技术',
      type: '本科',
      sTime: '2019.09',
      eTime: '2023.06',
    },
  ],
};

// 【技能】
const skills: TextInfo[][] = [
  '【掌握】HTML/CSS/JavaScript/TypeScript：例如CSS盒模型、定位、flex布局、ES6+语法和{Promise源码-600-#000}等。',
  '【掌握】熟练使用Git进行代码版本控制与多人协作开发。',
  '【掌握】Web安全/性能指标/浏览器：例如XSS攻击、CSRF攻击、性能监控、垃圾回收、HTTP缓存等。',
  '【掌握】计算机网络：例如网络模型、常见的协议（HTTP2、HTTP3、TCP、UDP、CDN）等。',
  '【掌握】Node开发：例如多进程、多线程、eventloop模型、JWT原理、{Koa核心源码-600-#000}等。',
  '【熟悉】Webpack/Vite：了解核心打包流程、打包后的runtime格式代码。',
  '【{深入了解-600-#000}】React18/Redux/React-Router：例如React18从JSX编译到渲染出页面的各个环节的{核心流程-600-#000}、Fiber架构及Concurrent模式的实现、合成事件机制、Hooks机制、批处理机制更新机制、Diff逻辑等。',
  '【{深入了解-600-#000}】Vue3：例如模版编译、依赖收集、核心响应式API的实现、批处理机制、Diff逻辑等。',
  '有写笔记的习惯，目前写了有{35w+字-600-#000}的技术笔记。',
].map(skill => parseStyledString(skill));

// 【实习经历】
const workInfos: WorkInfoI[] = [
  {
    company: '腾讯｜IEG',
    logo: TX,
    logoHeight: 16,
    role: '前端开发实习生',
    sTime: '2024.07',
    eTime: '2025.06',
    intro: '主要负责数据可视化管理平台（ToB）、抖音小程序、移动端H5等业务的开发。',
    descs: [
      '【业务】基于{模块组合-600-#000}的思想参与基础需求迭代。核心是实现数据可视化、交互、多模块的联动和数据上报。',
      '【业务】从0到1开发{数据->大报告->图片-600-#000}的导出功能。解决了全体文字向下偏移、部分切片底部出现白线、内容虚化、多切片场景下速度慢等问题。',
      '【业务】参与{Node层-600-#000}的网关开发。主要负责路由转发相关事情。',
      '【业务】开发游戏攻略相关的抖音小程序。通过封装通用性的无限feeds流组件来降低开发耗时。',
      '【基建】参与组内{新版组件库-600-#000}的建设。对公司的组件库进行二次封装，同时降低和业务的强相关（{核心思想是为业务服务，但不为特定的业务服务-600-#000}）。',
      '【基建】参与组内配置化引擎的开发。基于配置化搭建页面，同时实现无侵入性的管理页面中组件的数据请求与注入、数据更新和联动交互。',
      '【性能】通过{虚拟列表-600-#000}优化抖音小程序的无线feeds流组件，消除元素过多后的卡顿感。',
      '【性能】基于{长任务切片-600-#000}、{canvas切片-600-#000}、{多线程和线程池-600-#000}等技术优化数据->图片功能的loading卡顿问题和切片过多导致的耗时过长问题。将最初的近60秒导出时间压缩到5秒左右。',
    ],
    techStach: ['Vue3', 'TypeScript', 'Axios', 'Koa', 'Webpack', 'Aegis', 'html2canvas', 'puppeteer', 'Ejs'],
  },
  {
    company: '美团｜外卖技术部',
    logo: MT,
    logoHeight: 25,
    role: '前端开发实习生',
    sTime: '2025.06',
    eTime: '2025.09',
    intro: '主要负责神券、膨万物、美团会员等移动端业务（ToC）',
    descs: [
      '【业务】基于{分层控制-600-#000}的思想参与基础需求的迭代。例如由控制层管理数据处理与交互；由可视层管理内容的渲染；以此来降低业务迭代和AB实验带来的影响，提升后期代码的{可维护性-600-#000}。',
      '【业务】基于{分散化-600-#000}信息判断与{集中化-600-#000}状态管理的思想重构膨万物项目中的多状态场景，以此来降低后期业务迭代的{风险性-600-#000}。',
      '【性能】优化神券主页的锚点定位延时。基于{动态化渲染、渐进式加载、接口优先级控制和事件监听-600-#000}等技术优化锚点滚动前的等待延时。使得等待延时至少降低1秒（{50%-600-#000}）以上。',
      '【兼容性】通过解决小程序和Native端的兼容性问题并整理{跨端兼容文档-600-#000}，降低了团队在多端适配开发中的技术成本和时间投入。',
      '【稳定性】在膨万物项目中构建了完整的{监控体系-600-#000}。针对业务数据、自定义数据和Logan日志进行上报并接入监控大盘。同时{制定告警SOP-600-#000}，形成监控、告警、响应和修复的完整链路，以此来增强业务的稳定性。',
      '【稳定性】基于日志信息排查线上客诉问题。',
    ],
    techStach: ['React18', 'Vue3', 'Axios', 'Webpack', 'Vite', '高达开发框架', 'machpro'],
  },
];
workInfos.forEach(workInfo => {
  workInfo.formatDescs = workInfo.descs.map(desc => parseStyledString(desc));
})

export { personalInfo, skills, workInfos };
